package com.ztgf.pay.models.dto;

import com.baomidou.mybatisplus.annotations.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import com.ztgf.common.dto.BaseDTO;

/**
 * 支付订单DTO
 *
 * @author mxli
 * @Date 2020-07-30 12:12:21
 */
@Data
@TableName("pay_order")
@ApiModel(value="支付订单对象", description="支付订单对象")
public class PayOrderDTO extends BaseDTO implements Serializable {

    @ApiModelProperty(value = "乐观锁")
    private Integer revision = 0;
    @ApiModelProperty(value = "创建人")
    private Long createUserId;
    @ApiModelProperty(value = "更新人")
    private Long updateUserId;
    @ApiModelProperty(value = "付款方id")
    private Long paymentUserId;
    @ApiModelProperty(value = "付款方名称")
    private String paymentUserName;
    @ApiModelProperty(value = "付款方账号")
    private String paymentUserNo;
    @ApiModelProperty(value = "银行id")
    private String bankId;
    @ApiModelProperty(value = "银行名称")
    private String bankName;
    @ApiModelProperty(value = "付款金额")
    private BigDecimal money;
    @ApiModelProperty(value = "付款手续费")
    private BigDecimal paymentFeeMoney;
    @ApiModelProperty(value = "状态0创建中、1支付中、2成功、3失败、4过期")
    private Integer status;
    @ApiModelProperty(value = "类型 0余额、1网银")
    private Integer type;
    @ApiModelProperty(value = "网银url地址")
    private String bankUrl;
    @ApiModelProperty(value = "中金流水号")
    private String zjBusinessId;
    @ApiModelProperty(value = "业务订单号")
    private String businessOrderNo;
    @ApiModelProperty(value = "业务订单流水号")
    private String businessOrderWaterNo;
    @ApiModelProperty(value = "收款方id")
    private Long receiveUserId;
    @ApiModelProperty(value = "收款方名称")
    private String receiveUserName;
    @ApiModelProperty(value = "收款方账号")
    private String receiveUserNo;
    @ApiModelProperty(value = "资金用途")
    private String moneyUsage;
    @ApiModelProperty(value = "商品信息")
    private String commodityMsg;
    @ApiModelProperty(value = "母单id")
    private Long motherOrderId;
    @ApiModelProperty(value = "中金失败原因")
    private String zjFailMsg;
    @ApiModelProperty(value = "回调地址")
    private String notifyUrl;
    @ApiModelProperty(value = "回调状态：0未回调，1已回调")
    private Integer notifyStatus;
    @ApiModelProperty(value = "过期时间")
    private Date expiredTime;

    @ApiModelProperty(value = "业务标示: " +
            "余额支付：A00 普通订单支付,B00 收款方收款成功后，再冻结资金, B01 付款方解冻资金后，再支付给收款方；" +
            "网银支付： A00 入金并支付 B00 收款方收款成功后，再 冻结资金")
    private String trsFlag;

    @ApiModelProperty(value = "金额类型：0订单金额，1佣金、2缴纳保证金、3年费、4采购申请平台砍价、5砍价手续费、6重复支付，7售后退款、8解冻保证金、9扣除保证金、10取消订单退款、11取消砍价服务费退款、12售后服务费退款、13签收解冻金额、14解冻砍价手续费")
    private Integer businessType;
}